﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Data.Linq.SqlClient;
using System.Text;

namespace BGCOP.CAVTOP.BUSINESSLAYER
{
    public class ModelosVehiculo
    {
        public List<TModeloVehiculo> ListarTodos()
        {
            masterDBACEntities db = new masterDBACEntities();
            var modv = from d in db.TModeloVehiculo select d;
            return modv.ToList();
        }
        public List<TModeloVehiculo> ListarTodos(int idMarca)
        {
            masterDBACEntities db = new masterDBACEntities();
            var modv = from d in db.TModeloVehiculo where d.idMarcaVehiculo == idMarca select d;
            return modv.ToList();
        }
        public TModeloVehiculo buscar(string modelo)
        {
            masterDBACEntities db = new masterDBACEntities();
            var modv = (from d in db.TModeloVehiculo where d.NombreModelo.StartsWith(modelo.Substring(0,2))  select d).FirstOrDefault();
            return modv;
        }
        /// <summary>
        /// Agrega Modelo Vehiculo sin marca
        /// ni tipo de vehiculo
        /// </summary>
        /// <param name="modelo"></param>
        /// <param name="fechaC"></param>
        /// <param name="usuarioUg"></param>
        /// <param name="tipoVeh"> </param>
        public void CrearModeloVehiculo(string modelo,DateTime fechaC,int usuarioUg, int tipoVeh=1)
        {
            masterDBACEntities db = new masterDBACEntities();
            TModeloVehiculo tmp = new TModeloVehiculo();
            tmp.NombreModelo = modelo;
            tmp.idTipoVehiculo = (byte)tipoVeh;
            tmp.fechaUltimaGestion = fechaC;
            tmp.usuarioUltimaGestion = usuarioUg;
            db.AddToTModeloVehiculo(tmp);
            db.SaveChanges();
        }
        public bool EliminarModeloVehiculo(int idEmp)
        {
            bool tmp = false;
            masterDBACEntities db = new masterDBACEntities();
            TModeloVehiculo  te = db.TModeloVehiculo.FirstOrDefault(c => c.idModeloVehiculo  == idEmp);
            db.TModeloVehiculo.DeleteObject(te);
            db.SaveChanges();
            tmp = true;
            return tmp;
        }
        public void ModificarModelo(int idEmp, TModeloVehiculo nueva)
        {
           
            masterDBACEntities db = new masterDBACEntities();
            TModeloVehiculo  te = db.TModeloVehiculo.FirstOrDefault(c => c.idModeloVehiculo == idEmp);
            if (te != null)
            {
                te.NombreModelo = nueva.NombreModelo;
                te.TipoVehiculo  = nueva.TipoVehiculo;
                te.idMarcaVehiculo = nueva.idMarcaVehiculo; 
                te.fechaUltimaGestion = nueva.fechaUltimaGestion;
                te.usuarioUltimaGestion = nueva.usuarioUltimaGestion;
                db.SaveChanges();
            }
            
        }

    }
}
